我的做法是, 先去 官网 搜索需要的包, 然后点击进入详细页面.
找到对应的 Vagrantfile
描述, 拷贝之. 例如 laravel/homestead
包, 那么拷贝
Vagrant.configure("2") do |config|
config.vm.box = "laravel/homestead"
end
将上面拷贝好的内容放在 Vagrantfile
文件中, 在该文件所在文件夹内执行 vagrant up
.
之后控制台就会开始准备下载, 下载前会打印出下载地址, 打印出下载地址后, 就可以直接 Ctrl+c
中断命令行下载了.
ps: 网上有人提供了一个
油猴
的脚本, 说是可以在网页上增加一个下载按钮, 自行测试:https://github.com/everyx/vagrant-box-download-helper-everyx.user.js
我们拷贝一下下载链接 https://vagrantcloud.com/laravel/boxes/homestead/versions/5.2.0/providers/virtualbox.box
使用迅雷下载一下即可, 很快的.
下载后将其剪切到与 Vagrantfile
相同目录, 同时创建文件名为 metadata.json
的文件:
{
"name": "laravel/homestead",
"versions": [{
"version": "5.2.0",
"providers": [{
"name": "virtualbox",
"url": "file:///vagrant_box/laravel_homestead/virtualbox.box"
}]
}]
}
其中 name
为包名,
version 为对应的版本号,
providers 中 name 为可用的虚拟机类型, 有 virtualbox
, vmware
, libvirt
… 看官方支持哪一个, 默认是 virtualbox
, 方便快捷且免费.
providers 中 url 内容很重要, 是当前 box 在本地的存储路径, 我是 macos 路径为 /vagrant_box/laravel_homestead/virtualbox.box
,
使用文件加载协议为 file://
表示本地文件, 所以看似 file:///
有三个 /
, 实际上是 //
+ /
, 没有敲错.
之后添加该包不再使用 vagrant box add virtualbox.box
, 而是使用 vagrant box add metadata.json
.
参考:
vagrant 本地添加 box 支持带版本号: https://www.cnblogs.com/fengchi/p/6879389.html
vagrant 添加本地 box 安装 laravel homestead: https://zhuanlan.zhihu.com/p/25338468